home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Shareware World / Info / For Developers / Smile1.6.6.sea / Smile1.6.6 / Smile ƒ / Help files / Object script < prev    next >
Text File  |  1999-08-03  |  5KB  |  91 lines

  1. Object scripts
  2.  
  3.  
  4. Getting started with object scripts - Editing an object script
  5.  
  6. Smile is attachable thus allowing scripts to be attached to any of its scripts. An object script handles calls, some of which are automatically issued by Smile. For instance, when an object is created, its script receives automatically from Smile the message "prepare theObject" (where "theObject" contains a reference to the new object). The script can handle this call by a "on prepare theObject" handler.
  7.  
  8. To view / edit the object script of a visible object (such as a button or a window), -click its contents. 
  9.  
  10. To close / save an object script use the corresponding items of the "File" menu.
  11.  
  12. CAUTION ! Saving an object script updates the object script, but does not save to disk until you save the object - or its container - to disk.
  13.  
  14. The object script of a text or script window, (and the object scripts of the buttons that they contain), is saved when you save the window to disk.
  15.  
  16. The object script of a button is also saved when you save the button to disk, by using the contextual menu.
  17.  
  18. The object script of a custom dialog, (and the object scripts of the dialog items it contains), is saved when you save the dialog to disk.
  19.  
  20.  
  21. Using the object scripts - The 'continue' command
  22.  
  23. Two types of handlers can be installed in an object script : handlers for the AppleEvents sent by Smile, and your own AppleScript subroutine handlers.
  24.  
  25. On various occasions of the life of an object, Smile sends to it (that is, to its script) a message. Examples are : the "prepare" message sent on creating the object, and the "delete" message sent when it is suppressed.
  26.  
  27. Check the dictionary of Smile for the AppleEvents sent automatically by Smile (Smile dictionary). The AppleEvents which may be handled in object scripts are the 5 first verbs of the Smile Suite. "idle" can also be handled.
  28.  
  29. The "continue" AppleScript command is used to invoke a handler in a parent of the current script or in Smile itself. This is specially needed when you install a handler for a standard AppleEvent which needs to be finally handled by the core of Smile, such as "save" or "close".
  30.  
  31. The container property exists for each object script and refers to the object which owns the script.
  32.  
  33. ========================================================
  34.  
  35. Advanced
  36.  
  37. • Each object of Smile has elements and properties. One of the object's properties is its "script": its object script. You can dynamically attach scripts to objects with a script. Below is  an example of dynamic attachment. 
  38.  
  39. Select the following block (including the two-characters last line) and press the Enter key.
  40. ----------------------------
  41. set script of window 1 to "property theList:{}
  42. on AddOne(theMan)
  43.     copy theMan to end of theList
  44. end AddOne":
  45. ----------------------------
  46.  
  47. Check the script by -clicking this window. Then close the script window and run the following line, several times if you like. (You may want to change the name - do not omit the quotes.).
  48. ----------------------------
  49. tell window 1 to AddOne("Zarvox"):
  50. ----------------------------
  51.  
  52. Now, if you like, check the result by running the following lines :
  53. ----------------------------
  54. set AppleScript's text item delimiters to ", "
  55. display dialog ("" & theList of window 1):
  56. ----------------------------
  57.  
  58. If you save the window (you might need to do a fake change to enable the "Save" menu, such as inserting any character anywhere then removing it), its object script - and all its properties - is saved with it. Next time you open this window, the script and its property theList will be available. In other words, the strings that you have stored in theList are saved.
  59.  
  60. • Object scripts for text windows can be very convenient to easily make a Smile "sheet", a text window with buttons intended for automatization. 
  61.  
  62. • To edit the object script of invisible objects (such as Smile for instance), use the "EditObjectScript" routine (see Routines).
  63.  
  64. ----------------------------
  65. EditObjectScript(current application):
  66. ----------------------------
  67. As you can see, Smile ships with an empty object script.
  68.  
  69. • The handlers contained in an object script can be called from anywhere. The calls to AppleScript subroutines must be encapsulated in a "tell" statement, where the direct object is a reference to the owner of the script.
  70. You refer to the direct object through the special variable "it":
  71. ----------------------------
  72. tell window 1 to AddOne(it's name):
  73. ----------------------------
  74.  
  75. • The calls to AppleEvent handlers having an object specifier as the direct parameter are interpreted by Smile and automatically redirected to [the script of] the direct parameter. Thus if you write :
  76. ----------------------------
  77. close window "foobar" saving ask
  78. ----------------------------
  79. the "close" event will normally be sent to window "foobar".
  80.  
  81. But if the caller script already defines a "close" handler, you must write :
  82. ----------------------------
  83. tell window "foobar" to close it saving ask 
  84. ----------------------------
  85.  
  86. to send "close" to [the script of] window "foobar". Otherwise AppleScript will attempt to run the local "close" handler.
  87.  
  88. • An object script automatically has a class script as its parent. See class scripts.
  89.  
  90. ========================================================
  91.